﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Worke9
{
    class Program
    {
        static void Main(string[] args)
        {
            //string字符串
            var str = "爱吃菠菜的大力水手";

            Console.WriteLine(str.Length);

            for (int i = str.Length - 1; i >= 0; i--)  //索引时从0开始
            {
                Console.WriteLine(str[i]);
            }
            Console.WriteLine();

            //	IndexOf	返回整数，得到指定的字符串在原字符串中第一次出现的位置
            var search = str.IndexOf("大");  //索引从0开始
            Console.WriteLine(search);

            //	LastlndexOf	返回整数，得到指定的字符串在原字符串中最后一次出现的位置
            Console.WriteLine(str.LastIndexOf("水手"));  //索引从0开始
            Console.WriteLine(str.LastIndexOf("海员"));  //未在原字符串中查找到指定字符串时，结果为-1
            Console.WriteLine();


            //	Replace	返回一个新的字符串，用于将指定字符串替换给原字符串中指定的字符串
            Console.WriteLine(str.Replace("的", "的无敌"));
            Console.WriteLine();


            //	Substring	返回一个新的字符串，用于截取指定的字符串
            var ts = str.Substring(5);
            Console.WriteLine(ts);
            Console.WriteLine(str.Substring(7, 2));
            Console.WriteLine(str);  //原字符串不受影响
            Console.WriteLine();


            //	Insert	返回一个新的字符串，将一个字符串插入到另一个字符串中指定索引的位置
            Console.WriteLine(str.Insert(5, "牛气哄哄"));
            Console.WriteLine();



            var xxs = "  爱抓水母    的海绵宝宝!   ";
            Console.WriteLine(xxs);
            //Trim	返回一个新的字符串，不带任何参数时表示将原字符串中前后的空格删除。 
            //      参数为字符数组时表示将原字符串中含有的字符数组中的字符删除
            var blank = xxs.Trim(' ');
            Console.WriteLine(blank);

            //Replace	返回一个新的字符串，用于将指定字符串替换给原字符串中指定的字符串
            Console.WriteLine(xxs.Replace(" ", ""));

            //Remove	返回一个新的字符串，将字符串中指定位置的字符串移除
            int sir = xxs.IndexOf("宝");
            Console.WriteLine(xxs.Remove(sir-1,2).Replace(" ",""));  //索引至"棉"字,将"棉宝"两个字移除了
            Console.WriteLine();

            //PadLeft	返回一个新的字符串，从字符串的左侧填充空格达到指定的字符串长度
            //PadRight	返回一个新的字符串，从字符串的右侧填充空格达到指定的字符串长度
            var a1 = "  36445";
            var a2 = "    98798";
            Console.WriteLine(a1.PadLeft(9));  //总长度小于字符串长度时结果不会有任何改变
            Console.WriteLine(a2);

            //StartsWith	返回布尔型的值，判断某个字符串是否以指定的字符串开头
            //EndsWith	    返回布尔型的值，判断某个字符串是否以指定的字符串结尾
            var rt = "玄风圣王!";
            Console.WriteLine(rt.StartsWith("玄"));
            Console.WriteLine(rt.EndsWith("!"));

        }
    }
}
